
Public Class frmGestionDeEstudios
    ' no necesito determinar la  columna de la grilla seleccionada por el usuario debido a que hay solo una columna
    Dim intNumeroWeek As Integer
    Dim intFilaGrid As Integer 'fila de la grilla seleccionada por el usuario
    Dim strSeleccionDeAnalisis As String
    Dim strClaveDeBusquedaParaWeek As String
    Dim intClaveDebusqueda As Integer
    Dim strlistWeek As List(Of String)
    Dim ObjGestorEstudios As Laboratorio_Negocio.GestorEstudios
    Private objListaAnalisis As List(Of Laboratorio_Negocio.CapaDeNegocio.Analisis)

    Private Sub GestionDeEstudios_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ObjGestorEstudios = New Laboratorio_Negocio.GestorEstudios ' creo el gestor
        ' aca cargo el combo, para poder elegir los protocolos
        'Me.grdAnalisis.InvalidateRow(0)
        Me.cboCodProtocolo.DisplayMember = "codigo"
        Me.cboCodProtocolo.ValueMember = "id_protocolo"
        Me.cboCodProtocolo.DataSource = ObjGestorEstudios.buscarProtocolos()
        Me.cboCodProtocolo.SelectedIndex = 0

        Me.LstAnalisis.DisplayMember = "descripcion"
        Me.LstAnalisis.ValueMember = "id_analisis"
        Me.LstAnalisis.DataSource = ObjGestorEstudios.buscarAnalisis()

        Me.objListaAnalisis = New List(Of Laboratorio_Negocio.CapaDeNegocio.Analisis)
        ' aca debo cargar la lista de analisis disponibles 

    End Sub

    'Private Sub cboCodProtocolo_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cboCodProtocolo.Click
    '    intClaveDebusqueda = CInt(cboCodProtocolo.SelectedText)
    '    Me.TextBox1.Text = CStr(intClaveDebusqueda)
    'End Sub

    Private Sub cboCodProtocolo_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboCodProtocolo.SelectedIndexChanged
        Dim ObjGestorEstudios As Laboratorio_Negocio.GestorEstudios = New Laboratorio_Negocio.GestorEstudios
        Dim strIdProtocolo As String
        Dim objProtocolo As Laboratorio_Negocio.capaDeNegocio.PlanProtocolo
        objProtocolo = CType(cboCodProtocolo.SelectedItem(), Laboratorio_Negocio.capaDeNegocio.PlanProtocolo)

        strIdProtocolo = objProtocolo.idProtocolo

        Me.cboEtapa.DisplayMember = "descripcion"
        Me.cboEtapa.ValueMember = "id_etapa"
        Me.cboEtapa.DataSource = ObjGestorEstudios.buscarEtapas(strIdProtocolo)
    End Sub

    Private Sub LstAnalisis_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
        'strSeleccionDeAnalisis = CStr(LstAnalisis.SelectedItem())
        'Me.TextBox1.Text = strSeleccionDeAnalisis
        'Me.btnAgregarEnGrilla.Focus()

    End Sub

    'Private Sub cboEtapa_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles cboEtapa.MouseClick
    '    ObjGestorEstudios = New Laboratorio_Negocio.GestorEstudios
    '    strClaveDeBusquedaParaWeek = CStr(cboEtapa.SelectedItem)
    '    Me.CboWeek.DataSource = ObjGestorEstudios.buscarWeek(strClaveDeBusquedaParaWeek)
    'End Sub

    Private Sub cboEtapa_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Dim strIdEtapa As String
        Dim ObjGestorEstudios As Laboratorio_Negocio.GestorEstudios
        ObjGestorEstudios = New Laboratorio_Negocio.GestorEstudios
        Dim objEtapa As Laboratorio_Negocio.capaDeNegocio.Etapa
        objEtapa = CType(Me.cboEtapa.SelectedItem(), Laboratorio_Negocio.capaDeNegocio.Etapa)
        strIdEtapa = objEtapa.idetapa

        Me.CboWeek.DisplayMember = "numero"
        Me.CboWeek.ValueMember = "id_week"
        Me.CboWeek.DataSource = ObjGestorEstudios.buscarWeek(strIdEtapa)
    End Sub

    'Private Sub LstAnalisis_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LstAnalisis.SelectedIndexChanged
    '    strSeleccionDeAnalisis = CStr(LstAnalisis.SelectedItem())
    '    Me.TextBox1.Text = strSeleccionDeAnalisis
    'End Sub

    'este boton agrega siempre y cuando no se agregue dos veces el mismo analisis(esa ultima parte me falta )
    Private Sub btnAgregarEnGrilla_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

        Me.grdAnalisis.Rows.Add(strSeleccionDeAnalisis)

    End Sub

    Private Sub dtgridAnalisisProtocolo_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs)
        'Me.TextBox3.Text = Me.dtgridAnalisisProtocolo.Rows(Me.dtgridAnalisisProtocolo.CurrentCell.RowIndex).Cells(2)
        'Me.TextBox3.Text = Me.dtgridAnalisisProtocolo(ColNomAnalisis, Me.dtgridAnalisisProtocolo.CurrentRow)
        intFilaGrid = Me.grdAnalisis.CurrentRow.Index
        'Me.TextBox3.Text = CStr(Me.dtgridAnalisisProtocolo.CurrentRow.Index)
        'Me.TextBox2.Text = CStr(Me.dtgridAnalisisProtocolo.Item(0, CInt(Me.TextBox3.Text)).Value)
        'Me.TextBox2.Text = CStr((Me.dtgridAnalisisProtocolo.Item(0, intFilaGrid)).Value)
    End Sub

    ' para quitar primero se selecciona un elemento y segun sus cordedas se lo quita
    Private Sub btnQuitarAnalisisProtocolo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Dim miFila As Byte = CByte(Me.grdAnalisis.CurrentCell.RowIndex)


        Try ' controlo el caso en que la grilla este vacia 
            ' el siguiente me debuelve el valor almacenado en una celda de la fila seleccionada 
            ' Me.TextBox1.Text = (Me.dtgridAnalisisProtocolo.Rows(miFila).Cells(0).Value.ToString)
            Me.grdAnalisis.Rows.Remove(Me.grdAnalisis.CurrentRow)
        Catch ex As Exception
        End Try
    End Sub

    Private Sub BtnGuardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        'toda la funcionalidad sera basada en: llamo a la funcion del gestor de negocio.. pasandole  los valores obtenidos en la pantalla, este creara con estos datos los correspondientes objetos y los grabara en la bd...
        '// 1ro. grabo el estudio 

        ObjGestorEstudios = New Laboratorio_Negocio.GestorEstudios
        Dim intId_Estudio As Integer
        Dim intId_analisis As Integer
        'Dim id_week As Integer
        'id_week = ObjGestorEstudios.ID_week(intNumeroWeek, intClaveDebusqueda)
        'Me.TextBox3.Text = CStr(id_week)
        intId_Estudio = CInt(ObjGestorEstudios.UltimoEstudio()) + 1 ' sera el id del nuevo estudio
        'ObjGestorEstudios.ObtenerDatosParaRegistrarlos(intId_Estudio, id_week)
        'Me.TextBox3.Text = CStr(Me.dtgridAnalisisProtocolo.CurrentRow.Index)
        ' ///2do grabo los analsis_estudios
        Dim i As Integer
        Dim intFilas As Integer
        intFilas = Me.grdAnalisis.RowCount() - 1 ' para evitar esa fila en blanco de la grilla 
        '  recorro la grilla y guardo a medida que valido los valores
        i = Me.grdAnalisis.RowCount() - 2
        Dim strNomAnalisis As String
        strNomAnalisis = CStr((Me.grdAnalisis.Item(0, 0).Value))
        Do
            'debo obtener el iD_analisis, el id_estudio ya lo tengo

            strNomAnalisis = CStr((Me.grdAnalisis.Item(i, 0).Value))
            intId_analisis = ObjGestorEstudios.ID_Analisis(strNomAnalisis)
            ObjGestorEstudios.GuardarAnalisis_Estudios(intId_analisis, intId_Estudio)
            i = i - 1
            'Me.TextBox3.Text = CStr((Me.dtgridAnalisisProtocolo.Item(i, 0).Value))
        Loop While i > 0


        'Me.TextBox3.Text = CStr(intFilas)

        'strlistweek = New List(Of String)
        'If CboWeek.Enabled = False Then
        '    ' si es false se  selecciono todas la correspondientes a una e 
        '    Dim i As Integer
        '    For i = 0 To CboWeek.Items.Count - 1
        '        strlistWeek.Add(CboWeek.GetItemText(i))

        '    Next i
        'Else
        '    'strlistweek.Add(cboweek.)


        '    'strlistweek.Add   
        'End If

    End Sub

    Private Sub btnAgregarEnGrilla_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAgregarEnGrilla.Click
        Dim objAnalisis As Laboratorio_Negocio.CapaDeNegocio.Analisis
        objAnalisis = CType(LstAnalisis.SelectedItem(), Laboratorio_Negocio.CapaDeNegocio.Analisis)
        objListaAnalisis.Add(objAnalisis)
        grdAnalisis.DataMember = "descripcion"
        grdAnalisis.DataSource = objListaAnalisis
    End Sub
End Class

